:: 请求管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo 正在请求管理员权限...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B

:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"

@echo off
REM ==================================
REM 启动顺序：1. Nginx → 2. Waitress
REM 需根据实际路径修改 NGINX_PATH
REM ==================================

REM 配置区域（需手动修改）
set "NGINX_PATH=D:\DevEnv\nginx-1.25.4"  REM 修改为你的 Nginx 安装路径
set "PORT=8000"
set "VENV_PATH=D:\DevEnv\nginx-1.25.4\html\PyHttpServer\.venv\Scripts\activate.bat"


REM ================= Nginx进程检查 =================
@echo off
echo 正在检查Nginx状态...
tasklist | findstr /i "nginx.exe" > nul
if %errorlevel% equ 0 (
    echo 发现正在运行的Nginx进程，跳过启动
    timeout /t 5 /nobreak > nul
) else (
    echo 正在启动Nginx...
    
    REM 切换目录并启动（添加启动延迟）
    cd /D "D:\DevEnv\nginx-1.25.4"
    start /B nginx.exe
    
    REM 增加启动等待时间（根据实际情况调整）
    timeout /t 10 /nobreak > nul
    
    REM 双重验证（使用更精确的检测方式）
    tasklist | findstr /i "nginx.exe" > nul
    if %errorlevel% neq 0 (
        echo 错误：Nginx启动失败！
        
        REM 增强型调试输出
        echo 当前目录：%cd%
        echo nginx进程列表：
        tasklist | findstr "nginx.exe"
        
        timeout /t 3 /nobreak > nul
    ) else (
        echo Nginx启动成功！
        netstat -ano | findstr ":80 "
        timeout /t 3 /nobreak > nul
    )
)

REM 暂停3秒后继续执行
timeout /t 3 /nobreak > nul

REM 自定义窗口标题
title res.hytems.com服务 (Port 8000)

REM 切换到脚本所在目录（无论从哪里执行）
cd /d "%~dp0"

REM 激活虚拟环境（如果使用）
call "D:\DevEnv\nginx-1.25.4\html\PyHttpServer\.venv\Scripts\activate.bat"

REM 启动 Waitress 服务器
echo 正在启动 Waitress 服务器（端口 %PORT%）...
waitress-serve --threads=50 --port=%PORT% fileserver.wsgi:application
REMwaitress-serve --workers=16 --threads=50 --port=8000 --log-file=- fileserver.wsgi:application

REM 将输出重定向到日志文件
waitress-serve --workers=16 --threads=50 --port=8000 fileserver.wsgi:application > waitress.log 2>&1

REM 保持窗口打开（调试用，生产环境可删除）
pause